package com.neusoft.neuiotms.dcom.service;

import java.io.InputStream;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import com.neusoft.bizcore.auth.common.bean.UserBean;
import com.neusoft.bizcore.web.support.Searchable;
import com.neusoft.neuiotms.dcom.dto.InstitutionsDTO;
import com.neusoft.neuiotms.dcom.dto.OperationSupportWeeklyDTO;

public interface OperationSupportWeeklyService {

    List<OperationSupportWeeklyDTO> index(Searchable searchable, UserBean userBean);

    Page<OperationSupportWeeklyDTO> page(Searchable searchable, Pageable pageable, UserBean userBean);

    OperationSupportWeeklyDTO create(final OperationSupportWeeklyDTO dto);

    OperationSupportWeeklyDTO update(final Long id, final OperationSupportWeeklyDTO dto);

    OperationSupportWeeklyDTO detail(final Long id);

    void delete(final Long id);

    void upload(MultipartFile file, UserBean user);

    Workbook export(Searchable searchable, UserBean userBean);

    List<InstitutionsDTO> unstartdInstitutions();

    Map<String, Long> reportStats();

    void importExcel(InputStream fileStream, UserBean user);

    Workbook template(UserBean user);

    Page<Map<String, Object>> report(Pageable pageable, String username, Date start, Date end);

    Workbook exportReport(String username, Date start, Date end);

    /**
     * 检查运维周报提醒
     */
    void checkReportNotice();
}
